package wei.qiang.ye.hibernatevalidatordemo.controller;

import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import wei.qiang.ye.hibernatevalidatordemo.domain.User;

import javax.validation.Valid;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;

@RestController
@Validated
public class TestController {

    /**
     * name参数使用@NotBlank标注，表示不能为空，提示信息为{required}占位符里的内容；
     * email参数使用@Email注解标注，表示必须为一个合法的邮箱值（可以为空），
     * 提示信息为{invalid}占位符里的内容。要让参数校验生效，
     * 我们还需在类上使用@Validated注解标注。
     * @param name
     * @param email
     * @return
     */
    @GetMapping("test1")
    public String test1(
            @NotBlank(message = "{required}") String name,
            @Email(message = "{invalid}") String email) {
        return "success";
    }

    /**
     * 参数前加上@Valid注解
     * @param user
     * @return
     */
    @GetMapping("test2")
    public String test2(@Valid User user) {
        return "success";
    }
}
